<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 5.4.2">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">


<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"wrr123.github.io","root":"/","scheme":"Muse","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},"path":"search.json"};
  </script>

  <meta name="description" content="什么是 UMLUnified Modeling Language （UML 又称为统一建模语言或标准建模语言）是国际对象管理组织 OMG 制定的一个通用的、可视化建模语言标准，可以用来描述（specify）、可视化（visualize）、构造（construct）和记载（document）软件密集型的各种工作（artifacts）。 UML 有什么用？ UML 的用途非常广泛，可以概括为 “描述、">
<meta property="og:type" content="article">
<meta property="og:title" content="统一建模语言">
<meta property="og:url" content="https://wrr123.github.io/2020/09/17/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD%E8%A8%80/index.html">
<meta property="og:site_name" content="一缕烟气">
<meta property="og:description" content="什么是 UMLUnified Modeling Language （UML 又称为统一建模语言或标准建模语言）是国际对象管理组织 OMG 制定的一个通用的、可视化建模语言标准，可以用来描述（specify）、可视化（visualize）、构造（construct）和记载（document）软件密集型的各种工作（artifacts）。 UML 有什么用？ UML 的用途非常广泛，可以概括为 “描述、">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2020-09-17T05:32:49.000Z">
<meta property="article:modified_time" content="2022-02-18T02:52:04.546Z">
<meta property="article:author" content="田园隐士">
<meta property="article:tag" content="java">
<meta name="twitter:card" content="summary">

<link rel="canonical" href="https://wrr123.github.io/2020/09/17/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD%E8%A8%80/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>统一建模语言 | 一缕烟气</title>
  






  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

<link rel="alternate" href="/atom.xml" title="一缕烟气" type="application/atom+xml">
</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container use-motion">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">一缕烟气</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
      <p class="site-subtitle" itemprop="description">沧海月明珠有泪，蓝田日暖玉生烟</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
        <i class="fa fa-search fa-fw fa-lg"></i>
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="main-menu menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>

  </li>
      <li class="menu-item menu-item-search">
        <a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
        </a>
      </li>
  </ul>
</nav>



  <div class="search-pop-overlay">
    <div class="popup search-popup">
        <div class="search-header">
  <span class="search-icon">
    <i class="fa fa-search"></i>
  </span>
  <div class="search-input-container">
    <input autocomplete="off" autocapitalize="off"
           placeholder="搜索..." spellcheck="false"
           type="search" class="search-input">
  </div>
  <span class="popup-btn-close">
    <i class="fa fa-times-circle"></i>
  </span>
</div>
<div id="search-result">
  <div id="no-result">
    <i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>
  </div>
</div>

    </div>
  </div>

</div>
    </header>

    
  <div class="back-to-top">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content post posts-expand">
            

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://wrr123.github.io/2020/09/17/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD%E8%A8%80/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="田园隐士">
      <meta itemprop="description" content="talk is cheap, show me the code">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="一缕烟气">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          统一建模语言
        </h1>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-calendar"></i>
              </span>
              <span class="post-meta-item-text">发表于</span>

              <time title="创建时间：2020-09-17 13:32:49" itemprop="dateCreated datePublished" datetime="2020-09-17T13:32:49+08:00">2020-09-17</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="far fa-calendar-check"></i>
                </span>
                <span class="post-meta-item-text">更新于</span>
                <time title="修改时间：2022-02-18 10:52:04" itemprop="dateModified" datetime="2022-02-18T10:52:04+08:00">2022-02-18</time>
              </span>

          
            <span class="post-meta-item" title="阅读次数" id="busuanzi_container_page_pv" style="display: none;">
              <span class="post-meta-item-icon">
                <i class="fa fa-eye"></i>
              </span>
              <span class="post-meta-item-text">阅读次数：</span>
              <span id="busuanzi_value_page_pv"></span>
            </span><br>
            <span class="post-meta-item" title="本文字数">
              <span class="post-meta-item-icon">
                <i class="far fa-file-word"></i>
              </span>
                <span class="post-meta-item-text">本文字数：</span>
              <span>11k</span>
            </span>
            <span class="post-meta-item" title="阅读时长">
              <span class="post-meta-item-icon">
                <i class="far fa-clock"></i>
              </span>
                <span class="post-meta-item-text">阅读时长 &asymp;</span>
              <span>10 分钟</span>
            </span>

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
        <h4 id="什么是-UML"><a href="#什么是-UML" class="headerlink" title="什么是 UML"></a>什么是 UML</h4><p>Unified Modeling Language （UML 又称为统一建模语言或标准建模语言）是国际对象管理组织 OMG 制定的一个通用的、可视化建模语言标准，可以用来描述（specify）、可视化（visualize）、构造（construct）和记载（document）软件密集型的各种工作（artifacts）。</p>
<p>UML 有什么用？</p>
<p>UML 的用途非常广泛，可以概括为 “描述、可视化、构造、记载” 4种基本功能，在 <strong>业务建模、需求分析、系统设计、实现和测试、数据建模、项目管理等</strong> 阶段任务中均可根据需要采用。</p>
<p>UML 由哪些元素组成</p>
<p>UML 由 3 个要素构成：UML 的基本构造块、支配这些构造块如何放置在一起的规则和运用于整个语言的公用机制。</p>
<span id="more"></span>
<h5 id="UML-基本构造块"><a href="#UML-基本构造块" class="headerlink" title="UML 基本构造块"></a>UML 基本构造块</h5><ol>
<li><p>事物</p>
<p> 构成模型图的一些基本图示符号，它们表示一些面向对象的基本概念。</p>
<p> 事物是对模型中最具代表性的成分的抽象，包括结构事物、行为事物、分组事物和注释事物。</p>
<p> 结构事物：如 类（Class）、接口（Interface）、协作（collaboration）、用例（UseCase）、主动类（ActiveClass）、组件（Component）和节点（Node）。</p>
<p> 行为事物：如交互（interaction）、态机（Statemachine）。</p>
<p> 分组事物：包（package）。</p>
<p> 注释事物：注解（Note）</p>
</li>
<li><p>关系</p>
<p> 表示基本图示符号之间的关系。</p>
<p> 关系用来把事物结合在一起，包括依赖、关联、泛华和实现关系。</p>
</li>
<li><p>图</p>
<p> 图聚集了相关的事物及其关系的结合，是软件系统在不同角度下的投影。</p>
<p> 图由代表事物的顶点和代表关系的连通图表示。特定的视角对系统所作的抽象描述。</p>
<p> UML 从考虑系统的不同角度出发，定义了 <strong>用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图</strong> 等 9 种图。</p>
</li>
</ol>
<h4 id="plantUML"><a href="#plantUML" class="headerlink" title="plantUML"></a>plantUML</h4><h5 id="简单活动图"><a href="#简单活动图" class="headerlink" title="简单活动图"></a>简单活动图</h5><p>开始/结束</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">start</span><br><span class="line">:Hello world;</span><br><span class="line">:This is on defined on</span><br><span class="line">several **lines**;</span><br><span class="line">stop / end</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>条件语句</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"></span><br><span class="line">start</span><br><span class="line"></span><br><span class="line">if (Graphviz installed?) then (yes)</span><br><span class="line">  :process all\ndiagrams;</span><br><span class="line">else (no)</span><br><span class="line">  :process only</span><br><span class="line">  __sequence__ and __activity__ diagrams;</span><br><span class="line">endif</span><br><span class="line"></span><br><span class="line">stop</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">start</span><br><span class="line">if (condition A) then (yes)</span><br><span class="line">  :Text 1;</span><br><span class="line">elseif (condition B) then (yes)</span><br><span class="line">  :Text 2;</span><br><span class="line">  stop</span><br><span class="line">elseif (condition C) then (yes)</span><br><span class="line">  :Text 3;</span><br><span class="line">elseif (condition D) then (yes)</span><br><span class="line">  :Text 4;</span><br><span class="line">else (nothing)</span><br><span class="line">  :Text else;</span><br><span class="line">endif</span><br><span class="line">stop</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>重复循环</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"></span><br><span class="line">start</span><br><span class="line"></span><br><span class="line">repeat</span><br><span class="line">  :read data;</span><br><span class="line">  :generate diagrams;</span><br><span class="line">repeat while (more data?)</span><br><span class="line"></span><br><span class="line">stop</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"></span><br><span class="line">start</span><br><span class="line"></span><br><span class="line">repeat :foo as starting label;</span><br><span class="line">  :read data;</span><br><span class="line">  :generate diagrams;</span><br><span class="line">backward:This is backward;</span><br><span class="line">repeat while (more data?)</span><br><span class="line"></span><br><span class="line">stop</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>while 循环</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"></span><br><span class="line">start</span><br><span class="line"></span><br><span class="line">while (data available?)</span><br><span class="line">  :read data;</span><br><span class="line">  :generate diagrams;</span><br><span class="line">endwhile</span><br><span class="line"></span><br><span class="line">stop</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">while (check filesize ?) is (not empty)</span><br><span class="line">  :read file;</span><br><span class="line">endwhile (empty)</span><br><span class="line">:close file;</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>并行处理</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"></span><br><span class="line">start</span><br><span class="line"></span><br><span class="line">if (multiprocessor?) then (yes)</span><br><span class="line">  fork</span><br><span class="line">    :Treatment 1;</span><br><span class="line">  fork again</span><br><span class="line">    :Treatment 2;</span><br><span class="line">  end fork</span><br><span class="line">else (monoproc)</span><br><span class="line">  :Treatment 1;</span><br><span class="line">  :Treatment 2;</span><br><span class="line">endif</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>注释</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"></span><br><span class="line">start</span><br><span class="line">:foo1;</span><br><span class="line">floating note left: This is a note</span><br><span class="line">:foo2;</span><br><span class="line">note right</span><br><span class="line">  This note is on several</span><br><span class="line">  //lines// and can</span><br><span class="line">  contain &lt;b&gt;HTML&lt;/b&gt;</span><br><span class="line">  ====</span><br><span class="line">  * Calling the method &quot;&quot;foo()&quot;&quot; is prohibited</span><br><span class="line">end note</span><br><span class="line">stop</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>颜色</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"></span><br><span class="line">start</span><br><span class="line">:starting progress;</span><br><span class="line">#HotPink:reading configuration files</span><br><span class="line">These files should edited at this point!;</span><br><span class="line">#AAAAAA:ending of the process;</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>箭头</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">:foo1;</span><br><span class="line">-&gt; You can put text on arrows;</span><br><span class="line">if (test) then</span><br><span class="line">  -[#blue]-&gt;</span><br><span class="line">  :foo2;</span><br><span class="line">  -[#green,dashed]-&gt; The text can</span><br><span class="line">  also be on several lines</span><br><span class="line">  and **very** long...;</span><br><span class="line">  :foo3;</span><br><span class="line">else</span><br><span class="line">  -[#black,dotted]-&gt;</span><br><span class="line">  :foo4;</span><br><span class="line">endif</span><br><span class="line">-[#gray,bold]-&gt;</span><br><span class="line">:foo5;</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>连接器（Connector）</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">start</span><br><span class="line">:Some activity;</span><br><span class="line">(A)</span><br><span class="line">detach</span><br><span class="line">(A)</span><br><span class="line">:Other activity;</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>组合（grouping）</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">start</span><br><span class="line">partition Initialization &#123;</span><br><span class="line">    :read config file;</span><br><span class="line">    :init internal variable;</span><br><span class="line">&#125;</span><br><span class="line">partition Running &#123;</span><br><span class="line">    :wait for user interaction;</span><br><span class="line">    :print information;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">stop</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>泳道（Swimlanes）</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">|Swimlane1|</span><br><span class="line">start</span><br><span class="line">:foo1;</span><br><span class="line">|#AntiqueWhite|Swimlane2|</span><br><span class="line">:foo2;</span><br><span class="line">:foo3;</span><br><span class="line">|Swimlane1|</span><br><span class="line">:foo4;</span><br><span class="line">|Swimlane2|</span><br><span class="line">:foo5;</span><br><span class="line">stop</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>分离（detach）</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"> :start;</span><br><span class="line"> fork</span><br><span class="line">   :foo1;</span><br><span class="line">   :foo2;</span><br><span class="line"> fork again</span><br><span class="line">   :foo3;</span><br><span class="line">   detach</span><br><span class="line"> endfork</span><br><span class="line"> if (foo4) then</span><br><span class="line">   :foo5;</span><br><span class="line">   detach</span><br><span class="line"> endif</span><br><span class="line"> :foo6;</span><br><span class="line"> detach</span><br><span class="line"> :foo7;</span><br><span class="line"> stop</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<p>特殊领域语言（SDL）</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">:Ready;</span><br><span class="line">:next(o)|</span><br><span class="line">:Receiving;</span><br><span class="line">split</span><br><span class="line"> :nak(i)&lt;</span><br><span class="line"> :ack(o)&gt;</span><br><span class="line">split again</span><br><span class="line"> :ack(i)&lt;</span><br><span class="line"> :next(o)</span><br><span class="line"> on several line|</span><br><span class="line"> :i := i + 1]</span><br><span class="line"> :ack(o)&gt;</span><br><span class="line">split again</span><br><span class="line"> :err(i)&lt;</span><br><span class="line"> :nak(o)&gt;</span><br><span class="line">split again</span><br><span class="line"> :foo/</span><br><span class="line">split again</span><br><span class="line"> :i &gt; 5&#125;</span><br><span class="line">stop</span><br><span class="line">end split</span><br><span class="line">:finish;</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<h5 id="思维导图"><a href="#思维导图" class="headerlink" title="思维导图"></a>思维导图</h5><h5 id="甘特图（gantt）"><a href="#甘特图（gantt）" class="headerlink" title="甘特图（gantt）"></a>甘特图（gantt）</h5><h6 id="Duration"><a href="#Duration" class="headerlink" title="Duration"></a>Duration</h6><p>使用 <code>last</code> 动词</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Prototype design] lasts 15 days</span><br><span class="line">[Test prototype] lasts 10 days</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Start"><a href="#Start" class="headerlink" title="Start"></a>Start</h6><p>使用 <code>start</code> 动词</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">[Design du prototype] lasts 15 days</span><br><span class="line">[Test du prototype] lasts 10 days</span><br><span class="line"></span><br><span class="line">Project starts 2020-07-01</span><br><span class="line">[Design du prototype] starts 2020-07-01</span><br><span class="line">[Test du prototype] starts 2020-07-16</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<h6 id="End"><a href="#End" class="headerlink" title="End"></a>End</h6><p>使用 <code>end</code> 动词</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">[Design du prototype] lasts 15 days</span><br><span class="line">[Test du prototype] lasts 10 days</span><br><span class="line"></span><br><span class="line">Project starts 2020-07-01</span><br><span class="line">[Design du prototype] ends 2020-07-15</span><br><span class="line">[Test du prototype] ends 2020-07-25</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<h6 id="Start-End"><a href="#Start-End" class="headerlink" title="Start/End"></a>Start/End</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"></span><br><span class="line">Project starts 2020-07-01</span><br><span class="line">[Design du prototype] starts 2020-07-01</span><br><span class="line">[Test du prototype] starts 2020-07-16</span><br><span class="line">[Design du prototype] ends 2020-07-15</span><br><span class="line">[Test du prototype] ends 2020-07-25</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<h6 id="One-line-declaration-with-the-‘and’-conjunction"><a href="#One-line-declaration-with-the-‘and’-conjunction" class="headerlink" title="One-line declaration (with the ‘and’ conjunction)"></a>One-line declaration (with the ‘and’ conjunction)</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">Project starts 2020-07-01</span><br><span class="line">[Design du prototype] starts 2020-07-01 and ends 2020-07-15</span><br><span class="line">[Test du prototype] starts 2020-07-16 and lasts 10 days</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<h6 id="Adding-constraint"><a href="#Adding-constraint" class="headerlink" title="Adding constraint"></a>Adding constraint</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Prototype design] lasts 10 days</span><br><span class="line">[Code prototype] lasts 10 days</span><br><span class="line">[Write tests] lasts 5 days</span><br><span class="line">[Code prototype] starts at [Prototype design]&#x27;s end</span><br><span class="line">[Write tests] starts at [Code prototype]&#x27;s start</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Short-names"><a href="#Short-names" class="headerlink" title="Short names"></a>Short names</h6><p>使用 <code>as</code> 关键字给任务设置别名</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Prototype design] as [D] lasts 15 days</span><br><span class="line">[Test prototype] as [T] lasts 10 days</span><br><span class="line">[T] starts at [D]&#x27;s end</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Customize-colors"><a href="#Customize-colors" class="headerlink" title="Customize colors"></a>Customize colors</h6><p>使用 <code>is colored in</code> 给任务定制颜色</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Prototype design] lasts 13 days</span><br><span class="line">[Test prototype] lasts 4 days</span><br><span class="line">[Test prototype] starts at [Prototype design]&#x27;s end</span><br><span class="line">[Prototype design] is colored in Fuchsia/FireBrick</span><br><span class="line">[Test prototype] is colored in GreenYellow/Green</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Completion-status"><a href="#Completion-status" class="headerlink" title="Completion status"></a>Completion status</h6><p>给任务设置完成状态</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[foo] lasts 21 days</span><br><span class="line">[foo] is 40% completed</span><br><span class="line">[bar] lasts 30 days and is 10% complete</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Milestone"><a href="#Milestone" class="headerlink" title="Milestone"></a>Milestone</h6><p>使用动词 <code>happen</code> 来定义里程碑</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Test prototype] lasts 10 days</span><br><span class="line">[Prototype completed] happens at [Test prototype]&#x27;s end</span><br><span class="line">[Setup assembly line] lasts 12 days</span><br><span class="line">[Setup assembly line] starts at [Test prototype]&#x27;s end</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Hyperlinks"><a href="#Hyperlinks" class="headerlink" title="Hyperlinks"></a>Hyperlinks</h6><p>你可以给任务定义超链接</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[task1] lasts 10 days</span><br><span class="line">[task1] links to [[http://plantuml.com]]</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Calendar"><a href="#Calendar" class="headerlink" title="Calendar"></a>Calendar</h6><p>日历</p>
<p>你可以为整个项目指定一个开始日期。默认的，第一个任务从这个日期开始。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">Project starts the 20th of september 2017</span><br><span class="line">[Prototype design] as [TASK1] lasts 13 days</span><br><span class="line">[TASK1] is colored in Lavender/LightBlue</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Coloring-days"><a href="#Coloring-days" class="headerlink" title="Coloring days"></a>Coloring days</h6><p>给某些日期加上颜色也是可以的。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">Project starts the 2020/09/01 </span><br><span class="line"></span><br><span class="line">2020/09/07 is colored in salmon</span><br><span class="line">2020/09/13 to 2020/09/16 are colored in lightblue</span><br><span class="line"></span><br><span class="line">[Prototype design] as [TASK1] lasts 22 days</span><br><span class="line">[TASK1] is colored in Lavender/LightBlue</span><br><span class="line">[Prototype completed] happens at [TASK1]&#x27;s end</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Changing-scale"><a href="#Changing-scale" class="headerlink" title="Changing scale"></a>Changing scale</h6><p>使用下面的变量你可以改变一个非常长的项目的范围：</p>
<ul>
<li>Printscale</li>
<li>ganttscale</li>
<li>projectscale</li>
</ul>
<p>加上使用下面的变量</p>
<ul>
<li>weekly</li>
<li>monthly</li>
</ul>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">printscale weekly</span><br><span class="line">Project starts the 20th of september 2020</span><br><span class="line">[Prototype design] as [TASK1] lasts 130 days</span><br><span class="line">[TASK1] is colored in Lavender/LightBlue</span><br><span class="line">[Testing] lasts 20 days</span><br><span class="line">[TASK1]-&gt;[Testing]</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Close-day"><a href="#Close-day" class="headerlink" title="Close day"></a>Close day</h6><p>关闭某些日期也是可以的。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">project starts the 2018/04/09</span><br><span class="line">saturday are closed</span><br><span class="line">sunday are closed</span><br><span class="line">2018/05/01 is closed</span><br><span class="line">2018/04/17 to 2018/04/19 is closed</span><br><span class="line">[Prototype design] lasts 14 days</span><br><span class="line">[Test prototype] lasts 4 days</span><br><span class="line">[Test prototype] starts at [Prototype design]&#x27;s end</span><br><span class="line">[Prototype design] is colored in Fuchsia/FireBrick</span><br><span class="line">[Test prototype] is colored in GreenYellow/Green</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">2020-07-07 to 2020-07-17 is closed</span><br><span class="line">2020-07-13 is open</span><br><span class="line"></span><br><span class="line">Project starts the 2020-07-01</span><br><span class="line">[Prototype design] lasts 10 days</span><br><span class="line">Then [Test prototype] lasts 10 days</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<p>​    </p>
<h6 id="Simplfied-task-succession"><a href="#Simplfied-task-succession" class="headerlink" title="Simplfied task succession"></a>Simplfied task succession</h6><p>简化任务交接</p>
<p>使用关键字 <code>then</code> 来表示连续性的任务。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">Edit online</span><br><span class="line">@startgantt</span><br><span class="line">[Prototype design] lasts 14 days</span><br><span class="line">then [Test prototype] lasts 4 days</span><br><span class="line">then [Deploy prototype] lasts 6 days</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<p>也可以使用箭头 <code>➡</code></p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Prototype design] lasts 14 days</span><br><span class="line">[Build prototype] lasts 4 days</span><br><span class="line">[Prepare test] lasts 6 days</span><br><span class="line">[Prototype design] -&gt; [Build prototype]</span><br><span class="line">[Prototype design] -&gt; [Prepare test]</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Separator"><a href="#Separator" class="headerlink" title="Separator"></a>Separator</h6><p>使用 <code>--</code> 来分隔任务集。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Task1] lasts 10 days</span><br><span class="line">then [Task2] lasts 4 days</span><br><span class="line">-- Phase Two --</span><br><span class="line">then [Task3] lasts 5 days</span><br><span class="line">then [Task4] lasts 6 days</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Working-with-resources"><a href="#Working-with-resources" class="headerlink" title="Working with resources"></a>Working with resources</h6><p>使用关键字 <code>on</code> 和 方括号 <code>&#123;&#125;</code>,可以给指定具体的人。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Task1] on &#123;Alice&#125; lasts 10 days</span><br><span class="line">[Task2] on &#123;Bob:50%&#125; lasts 2 days</span><br><span class="line">then [Task3] on &#123;Alice:25%&#125; lasts 1 days</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<p>指定多个人也是可以的</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Task1] on &#123;Alice&#125; &#123;Bob&#125; lasts 20 days</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<p>使用 <code>off</code> 关键字可以在指定的天数设置为缺勤。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">project starts on 2020-06-19</span><br><span class="line">[Task1] on &#123;Alice&#125; lasts 10 days</span><br><span class="line">&#123;Alice&#125; is off on 2020-06-24 to 2020-06-26</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Comments"><a href="#Comments" class="headerlink" title="Comments"></a>Comments</h6><p>注释</p>
<p>所有已单引号 <code>&#39;</code> 开头的都是注释。</p>
<p>你也可以设置多行注释，使用 <code>/&#39;</code> 开始，<code>&#39;/</code> 结束。</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">&#x27; This is a comment</span><br><span class="line"></span><br><span class="line">[T1] lasts 3 days</span><br><span class="line"></span><br><span class="line">/&#x27; this comment</span><br><span class="line">is on several lines &#x27;/</span><br><span class="line"></span><br><span class="line">[T2] starts at [T1]&#x27;s end and lasts 1 day</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<p>Using style</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">&lt;style&gt;</span><br><span class="line">ganttDiagram &#123;</span><br><span class="line">	task &#123;</span><br><span class="line">		FontName Helvetica</span><br><span class="line">		FontColor red</span><br><span class="line">		FontSize 18</span><br><span class="line">		FontStyle bold</span><br><span class="line">		BackGroundColor GreenYellow</span><br><span class="line">		LineColor blue</span><br><span class="line">	&#125;</span><br><span class="line">	milestone &#123;</span><br><span class="line">		FontColor blue</span><br><span class="line">		FontSize 25</span><br><span class="line">		FontStyle italic</span><br><span class="line">		BackGroundColor yellow</span><br><span class="line">		LineColor red</span><br><span class="line">	&#125;</span><br><span class="line">	note &#123;</span><br><span class="line">		FontColor DarkGreen</span><br><span class="line">		FontSize 10</span><br><span class="line">		LineColor OrangeRed</span><br><span class="line">	&#125;</span><br><span class="line">&#125;</span><br><span class="line">&lt;/style&gt;</span><br><span class="line">[Task1] lasts 20 days</span><br><span class="line">note bottom</span><br><span class="line">  memo1 ...</span><br><span class="line">  memo2 ...</span><br><span class="line">  explanations1 ...</span><br><span class="line">  explanations2 ...</span><br><span class="line">end note</span><br><span class="line">[Task2] lasts 4 days</span><br><span class="line">[Task1] -&gt; [Task2]</span><br><span class="line">-- Separator title --</span><br><span class="line">[M1] happens on 5 days after [Task1]&#x27;s end</span><br><span class="line">-- end --</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<h6 id="Add-notes"><a href="#Add-notes" class="headerlink" title="Add notes"></a>Add notes</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[task01] lasts 15 days</span><br><span class="line">note bottom</span><br><span class="line">  memo1 ...</span><br><span class="line">  memo2 ...</span><br><span class="line">  explanations1 ...</span><br><span class="line">  explanations2 ...</span><br><span class="line">end note</span><br><span class="line"></span><br><span class="line">[task01] -&gt; [task02]</span><br><span class="line"></span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<p>​    </p>
<h6 id="Pause-task"><a href="#Pause-task" class="headerlink" title="Pause task"></a>Pause task</h6><p>暂停任务</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">Project starts the 5th of december 2018</span><br><span class="line">saturday are closed</span><br><span class="line">sunday are closed</span><br><span class="line">2018/12/29 is opened</span><br><span class="line">[Prototype design] lasts 17 days</span><br><span class="line">[Prototype design] pauses on 2018/12/13</span><br><span class="line">[Prototype design] pauses on 2018/12/14</span><br><span class="line">[Prototype design] pauses on monday</span><br><span class="line">[Test prototype] starts at [Prototype design]&#x27;s end and lasts 2 weeks</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Change-link-colors"><a href="#Change-link-colors" class="headerlink" title="Change link colors"></a>Change link colors</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line">Links are colored in blue</span><br><span class="line">[Prototype design] lasts 14 days</span><br><span class="line">[Build prototype] lasts 4 days</span><br><span class="line">[Prepare test] lasts 6 days</span><br><span class="line">[Prototype design] -[#FF00FF]-&gt; [Build prototype]</span><br><span class="line">[Prototype design] -[dotted]-&gt; [Prepare test]</span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<h6 id="Tasks-or-milestone-on-the-same-line"><a href="#Tasks-or-milestone-on-the-same-line" class="headerlink" title="Tasks or milestone on the same line"></a>Tasks or milestone on the same line</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">[Prototype design] lasts 13 days</span><br><span class="line">[Test prototype] lasts 4 days and 1 week</span><br><span class="line">[Test prototype] starts 1 week and 2 days after [Prototype design]&#x27;s end</span><br><span class="line">[Test prototype] displays on same row as [Prototype design]</span><br><span class="line">[r1] happens on 5 days after [Prototype design]&#x27;s end</span><br><span class="line">[r2] happens on 5 days after [r1]&#x27;s end</span><br><span class="line">[r3] happens on 5 days after [r2]&#x27;s end</span><br><span class="line">[r2] displays on same row as [r1]</span><br><span class="line">[r3] displays on same row as [r1]</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Highlightly-today"><a href="#Highlightly-today" class="headerlink" title="Highlightly today"></a>Highlightly today</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">Project starts the 20th of september 2018</span><br><span class="line">sunday are close</span><br><span class="line">2018/09/21 to 2018/09/23 are colored in salmon</span><br><span class="line">2018/09/21 to 2018/09/30 are named [Vacation in the Bahamas] </span><br><span class="line"></span><br><span class="line">today is 30 days after start and is colored in #AAF</span><br><span class="line">[Foo] happens 40 days after start</span><br><span class="line">[Dummy] lasts 10 days and starts 10 days after start</span><br><span class="line"></span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Task-between-two-milestones"><a href="#Task-between-two-milestones" class="headerlink" title="Task between two milestones"></a>Task between two milestones</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">@startgantt</span><br><span class="line">project starts on 2020-07-01</span><br><span class="line">[P_start] happens 2020-07-03</span><br><span class="line">[P_end]   happens 2020-07-13</span><br><span class="line">[Prototype design] occurs from [P_start] to [P_end]</span><br><span class="line">@endgantt</span><br></pre></td></tr></table></figure>
<h6 id="Add-title-header-footer-caption-or-legend-on-gantt-diagram"><a href="#Add-title-header-footer-caption-or-legend-on-gantt-diagram" class="headerlink" title="Add title,(header, footer),caption or legend on gantt diagram"></a>Add title,(header, footer),caption or legend on gantt diagram</h6><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">@startuml</span><br><span class="line"></span><br><span class="line">&#x27;header some header</span><br><span class="line"></span><br><span class="line">&#x27;footer some footer</span><br><span class="line"></span><br><span class="line">title My title</span><br><span class="line"></span><br><span class="line">[Prototype design] lasts 13 days</span><br><span class="line"></span><br><span class="line">legend</span><br><span class="line">The legend</span><br><span class="line">end legend</span><br><span class="line"></span><br><span class="line">caption This is caption</span><br><span class="line"></span><br><span class="line">@enduml</span><br></pre></td></tr></table></figure>
<h5 id="类图"><a href="#类图" class="headerlink" title="类图"></a>类图</h5><h6 id="类之间的关系"><a href="#类之间的关系" class="headerlink" title="类之间的关系"></a>类之间的关系</h6><p><code>泛化、依赖、关联、实现、聚合、组合</code></p>
<ul>
<li><p>泛化关系（Generalization）</p>
<p>  也就是继承关系，也称为 <code>is-a-kind-of</code> 关系。</p>
<p>  在 UML 中，泛化关系用带 <strong>空心三角形</strong> 的直线来表示。</p>
</li>
<li><p>依赖关系（Dependency）</p>
<p>  是一种使用关系，特定事物的改变有可能会影响到使用该事物的其他事物，在需要表示一个事物使用另一个事物时使用依赖关系。</p>
<p>  大多数情况下，依赖关系体现在某个类的方法使用另一个类的对象作为参数。</p>
<p>  在 UML 中，依赖关系用 <strong>带箭头的虚线</strong> 表示，由依赖的一方指向被依赖的一方。</p>
<p>  依赖关系有下面三种情况：</p>
<ol>
<li>A 类是 B 类中的(或某种方法中)局部变量</li>
<li>A 类是 B 类 方法当中的一个参数</li>
<li>A 类向 B 类发送信息，从而影响 B 类发生变化</li>
</ol>
</li>
<li><p>关联关系（Association）</p>
<p>  是一种结构关系，说明一个事物的对象与另一个事物的对象相联系。给定有关联的两个类，可以从一个类的对象得到另一个类的对象。</p>
<p>  关联有两元关系和多元关系。两元关系是指一种一对一的关系，多元关系是指一种一对多或多对一的关系。</p>
<p>  在 UML 图中，用 <strong>实线连接</strong> 有关联的对象所对应的类，在 Java 等编程语言中实线关联关系时，通常将一个类的对象作为另一个类的属性。</p>
</li>
<li><p>聚合关系（Aggregation）</p>
<p>  聚合关系是一个整体和部分的关系，成员类是整体类的一部分，即成员对象是整体对象的一部分，但是 <strong>成员对象可以脱离整体对象独立存在。</strong></p>
<p>  在 UML 中，聚合关系用 <strong>带空心菱形</strong> 的直线表示</p>
</li>
<li><p>组合关系（Composition）</p>
<p>  表示类之间整体和部分的关系，但是组合关系中整体和部分具有统一的生存期。一旦整体对象不存在，那么部分对象也将不存在。</p>
<p>  在 UML 中，组合关系用 <strong>带实心菱形的直线</strong> 表示。</p>
</li>
<li><p>实现关系（Implementation）</p>
<p>  在 UML 中，类与接口之间的实现关系用 <strong>带空心三角形的虚线</strong> 来表示。</p>
</li>
</ul>
<p>​    </p>
<p>​    </p>
<p>​    </p>

    </div>

    
    
    
        

  <div class="followme">
    <p>欢迎关注我的其它发布渠道</p>

    <div class="social-list">

        <div class="social-item">
          <a target="_blank" class="social-link" href="/atom.xml">
            <span class="icon">
              <i class="fa fa-rss"></i>
            </span>

            <span class="label">RSS</span>
          </a>
        </div>
    </div>
  </div>


      <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/java/" rel="tag"># java</a>
          </div>

        


        
    <div class="post-nav">
      <div class="post-nav-item">
    <a href="/2020/09/17/%E5%90%AF%E5%8A%A8springboot%E9%A1%B9%E7%9B%AE%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E5%BC%8F/" rel="prev" title="启动springboot项目的几种方式">
      <i class="fa fa-chevron-left"></i> 启动springboot项目的几种方式
    </a></div>
      <div class="post-nav-item">
    <a href="/2020/09/21/mybatis%E5%85%A5%E9%97%A8%E4%BD%BF%E7%94%A8/" rel="next" title="mybatis入门使用">
      mybatis入门使用 <i class="fa fa-chevron-right"></i>
    </a></div>
    </div>
      </footer>
    
  </article>
  
  
  



          </div>
          

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
          <div class="post-toc motion-element"><ol class="nav"><li class="nav-item nav-level-4"><a class="nav-link" href="#%E4%BB%80%E4%B9%88%E6%98%AF-UML"><span class="nav-number">1.</span> <span class="nav-text">什么是 UML</span></a><ol class="nav-child"><li class="nav-item nav-level-5"><a class="nav-link" href="#UML-%E5%9F%BA%E6%9C%AC%E6%9E%84%E9%80%A0%E5%9D%97"><span class="nav-number">1.1.</span> <span class="nav-text">UML 基本构造块</span></a></li></ol></li><li class="nav-item nav-level-4"><a class="nav-link" href="#plantUML"><span class="nav-number">2.</span> <span class="nav-text">plantUML</span></a><ol class="nav-child"><li class="nav-item nav-level-5"><a class="nav-link" href="#%E7%AE%80%E5%8D%95%E6%B4%BB%E5%8A%A8%E5%9B%BE"><span class="nav-number">2.1.</span> <span class="nav-text">简单活动图</span></a></li><li class="nav-item nav-level-5"><a class="nav-link" href="#%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE"><span class="nav-number">2.2.</span> <span class="nav-text">思维导图</span></a></li><li class="nav-item nav-level-5"><a class="nav-link" href="#%E7%94%98%E7%89%B9%E5%9B%BE%EF%BC%88gantt%EF%BC%89"><span class="nav-number">2.3.</span> <span class="nav-text">甘特图（gantt）</span></a><ol class="nav-child"><li class="nav-item nav-level-6"><a class="nav-link" href="#Duration"><span class="nav-number">2.3.1.</span> <span class="nav-text">Duration</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Start"><span class="nav-number">2.3.2.</span> <span class="nav-text">Start</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#End"><span class="nav-number">2.3.3.</span> <span class="nav-text">End</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Start-End"><span class="nav-number">2.3.4.</span> <span class="nav-text">Start&#x2F;End</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#One-line-declaration-with-the-%E2%80%98and%E2%80%99-conjunction"><span class="nav-number">2.3.5.</span> <span class="nav-text">One-line declaration (with the ‘and’ conjunction)</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Adding-constraint"><span class="nav-number">2.3.6.</span> <span class="nav-text">Adding constraint</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Short-names"><span class="nav-number">2.3.7.</span> <span class="nav-text">Short names</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Customize-colors"><span class="nav-number">2.3.8.</span> <span class="nav-text">Customize colors</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Completion-status"><span class="nav-number">2.3.9.</span> <span class="nav-text">Completion status</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Milestone"><span class="nav-number">2.3.10.</span> <span class="nav-text">Milestone</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Hyperlinks"><span class="nav-number">2.3.11.</span> <span class="nav-text">Hyperlinks</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Calendar"><span class="nav-number">2.3.12.</span> <span class="nav-text">Calendar</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Coloring-days"><span class="nav-number">2.3.13.</span> <span class="nav-text">Coloring days</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Changing-scale"><span class="nav-number">2.3.14.</span> <span class="nav-text">Changing scale</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Close-day"><span class="nav-number">2.3.15.</span> <span class="nav-text">Close day</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Simplfied-task-succession"><span class="nav-number">2.3.16.</span> <span class="nav-text">Simplfied task succession</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Separator"><span class="nav-number">2.3.17.</span> <span class="nav-text">Separator</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Working-with-resources"><span class="nav-number">2.3.18.</span> <span class="nav-text">Working with resources</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Comments"><span class="nav-number">2.3.19.</span> <span class="nav-text">Comments</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Add-notes"><span class="nav-number">2.3.20.</span> <span class="nav-text">Add notes</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Pause-task"><span class="nav-number">2.3.21.</span> <span class="nav-text">Pause task</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Change-link-colors"><span class="nav-number">2.3.22.</span> <span class="nav-text">Change link colors</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Tasks-or-milestone-on-the-same-line"><span class="nav-number">2.3.23.</span> <span class="nav-text">Tasks or milestone on the same line</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Highlightly-today"><span class="nav-number">2.3.24.</span> <span class="nav-text">Highlightly today</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Task-between-two-milestones"><span class="nav-number">2.3.25.</span> <span class="nav-text">Task between two milestones</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#Add-title-header-footer-caption-or-legend-on-gantt-diagram"><span class="nav-number">2.3.26.</span> <span class="nav-text">Add title,(header, footer),caption or legend on gantt diagram</span></a></li></ol></li><li class="nav-item nav-level-5"><a class="nav-link" href="#%E7%B1%BB%E5%9B%BE"><span class="nav-number">2.4.</span> <span class="nav-text">类图</span></a><ol class="nav-child"><li class="nav-item nav-level-6"><a class="nav-link" href="#%E7%B1%BB%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB"><span class="nav-number">2.4.1.</span> <span class="nav-text">类之间的关系</span></a></li></ol></li></ol></li></ol></div>
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <p class="site-author-name" itemprop="name">田园隐士</p>
  <div class="site-description" itemprop="description">talk is cheap, show me the code</div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">347</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
            <a href="/categories/">
        <span class="site-state-item-count">53</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
        <span class="site-state-item-count">115</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>



      </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 
  <span itemprop="copyrightYear">2022</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">田园隐士</span>
    <span class="post-meta-divider">|</span>
    <span class="post-meta-item-icon">
      <i class="fa fa-chart-area"></i>
    </span>
    <span title="站点总字数">587k</span>
    <span class="post-meta-divider">|</span>
    <span class="post-meta-item-icon">
      <i class="fa fa-coffee"></i>
    </span>
    <span title="站点阅读时长">8:53</span>
</div>
  <div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://muse.theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Muse</a> 强力驱动
  </div>

        
<div class="busuanzi-count">
  <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
    <span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
      <span class="post-meta-item-icon">
        <i class="fa fa-user"></i>
      </span>
      <span class="site-uv" title="总访客量">
        <span id="busuanzi_value_site_uv"></span>
      </span>
    </span>
    <span class="post-meta-divider">|</span>
    <span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
      <span class="post-meta-item-icon">
        <i class="fa fa-eye"></i>
      </span>
      <span class="site-pv" title="总访问量">
        <span id="busuanzi_value_site_pv"></span>
      </span>
    </span>
</div>








      </div>
    </footer>
  </div>

  
  <script src="/lib/anime.min.js"></script>
  <script src="/lib/velocity/velocity.min.js"></script>
  <script src="/lib/velocity/velocity.ui.min.js"></script>

<script src="/js/utils.js"></script>

<script src="/js/motion.js"></script>


<script src="/js/schemes/muse.js"></script>


<script src="/js/next-boot.js"></script>




  




  
<script src="/js/local-search.js"></script>













  

  

  

</body>
</html>
